package com.yh.service;

import com.yh.pojo.Role;
import com.yh.pojo.UserInfo;
import org.springframework.security.core.userdetails.UserDetailsService;

import java.util.List;

/**
 * @author by 张晨光
 * @date 2023/11/6 10:28
 * 根据用户名，来获取UserDetails信息；
 * UserDetails loadUserByUsername(String username)
 *    UserDetails:包含了用户名 密码 是否过期 权限等信息;
 */
public interface UserService extends UserDetailsService {
    List<UserInfo>findAllUsers();
    //添加用户
    void save(UserInfo userInfo);
    //根据id，来查询用户;
    UserInfo findUserById(Integer id);


    //根据id，来查询单一的用户信息
    UserInfo findSimpleUserById(Integer id);
    //根据用户id，来查询该用户可以添加的角色信息;
    List<Role>findOtherRoles(Integer id);

    /**
     * 从控制层获取的时候，获取的一系列的选中的角色ids
     * @param userid
     * @param roleid
     */
    void addRoleToUser(Integer userid,Integer ... rds);

    //业务这里写什么？写一个删除操作即可；

    /**
     * 这里，是根据id，来删除中间表，user表;
     * @param id
     */
    void deleteUser(Integer id);
}
